package com.pai4j.message.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 资源信息
 * 封装消息关联的资源详细信息
 *
 * @author PAI4J Team
 * @date 2025-11-01
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ResourceInfo {

    /**
     * 资源ID
     */
    private String resourceId;

    /**
     * 资源类型（ARTICLE、MOMENT、COURSE等）
     */
    private String resourceType;

    /**
     * 资源标题
     */
    private String title;

    /**
     * 资源封面图URL
     */
    private String coverImage;

    /**
     * 资源跳转URL
     */
    private String jumpUrl;

    /**
     * 资源拥有者ID
     */
    private String ownerId;

    /**
     * 资源作者名称
     */
    private String authorName;

    /**
     * 资源内容摘要（用于消息展示）
     */
    private String summary;

    /**
     * 资源状态（PUBLISHED、DRAFT等）
     */
    private String status;

    /**
     * 资源创建时间
     */
    private Long createTime;

    /**
     * 资源更新时间
     */
    private Long updateTime;

    /**
     * 扩展字段（JSON格式）
     */
    private String extData;

    /**
     * 判断资源是否有效
     */
    public boolean isValid() {
        return resourceId != null && resourceType != null;
    }

    /**
     * 获取资源展示标题（优先使用title，否则使用摘要）
     */
    public String getDisplayTitle() {
        if (title != null && !title.isEmpty()) {
            return title;
        }
        if (summary != null && !summary.isEmpty()) {
            return summary.length() > 50 ? summary.substring(0, 47) + "..." : summary;
        }
        return "未知资源";
    }
}

